//RegistroAutomovel.java
//Classe com as operações de registro do automovel
package dao;

import java.io.IOException;
import java.io.RandomAccessFile;
import modelo.Automovel;

/**
 * @author Diego Heusser
 * @author Eder Schramm
 */
public class RegistroAutomovel extends Automovel {

    private int identificador;
    private int motoristaId;
    private int proximo;
    private int tamanho;

    public RegistroAutomovel() {
        tamanho = 340;
    }

    public int getMotoritaId() {
        return motoristaId;
    }

    public void setMotoristaId(int motoristaId) {
        this.motoristaId = motoristaId;
    }

    public int getIdentificador() {
        return identificador;
    }

    public void setIdentificador(int identificador) {
        this.identificador = identificador;
    }

    public int getProximo() {
        return proximo;
    }

    public void setProximo(int proximo) {
        this.proximo = proximo;
    }

    public int getTamanho() {
        return tamanho;
    }

    public void setTamanho(int tamanho) {
        this.tamanho = tamanho;
    }

    private String leString(RandomAccessFile raf, int tamanho) throws IOException {
        char palavra[] = new char[tamanho];
        char temp;
        for (int i = 0; i < palavra.length; i++) {
            temp = raf.readChar();
            palavra[i] = temp;
        }
        return new String(palavra).replace('\0', ' ');
    }

    public void ler(RandomAccessFile raf) throws IOException {
        identificador = raf.readInt();
        id = raf.readInt();
        motoristaId = raf.readInt();
        ano = raf.readInt();
        cor = leString(raf, 30);
        combustivel = leString(raf, 30);
        fabricante = leString(raf, 50);
        modelo = leString(raf, 50);
        proximo = raf.readInt();
    }

    public void escreve(RandomAccessFile raf, int identificador, int proximo, Automovel umAutomovel) throws IOException {
        raf.writeInt(identificador);
        raf.writeInt(umAutomovel.getId());
        raf.writeInt(umAutomovel.getUmMotorista().getId());
        raf.writeInt(umAutomovel.getAno());
        raf.writeChars(umAutomovel.getCor());
        raf.writeChars(umAutomovel.getCombustivel());
        raf.writeChars(umAutomovel.getFabricante());
        raf.writeChars(umAutomovel.getModelo());
        raf.writeInt(proximo);
    }
}
